x86 shadow: Minor fix to the fast emulation patch.
authorKeir Fraser <keir.fraser@citrix.com>
Wed, 20 Feb 2008 17:38:19 +0000 (17:38 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Wed, 20 Feb 2008 17:38:19 +0000 (17:38 +0000)
The fast emulation path patch introduced a bug when we have an event
injection during a write to a pagetable: after removing shadows we
still jump to the done label, releasing the lock even if we aren't
grabbing it.

Signed-off-by: Gianluca Guida <gianluca.guida@eu.citrix.com>
xen/arch/x86/mm/shadow/multi.c

index 2032023a01f2813618c574074f77f596e2665229..5ed5c5722a70535433beed3cc4b2a17413fa031c 100644 (file)
@@ -3019,7 +3019,7 @@ static int sh_page_fault(struct vcpu *v,
                      "injection: cr2=%#lx, mfn=%#lx\n", 
                      va, mfn_x(gmfn));
             sh_remove_shadows(v, gmfn, 0 /* thorough */, 1 /* must succeed */);
-            goto done;
+            return EXCRET_fault_fixed;
         }
     }